package pl.maciejziarko.mshare.service;

import pl.maciejziarko.mshare.domain.Account;
import pl.maciejziarko.mshare.domain.Role;
import pl.maciejziarko.mshare.service.exception.RoleAlreadyGranted;
import pl.maciejziarko.mshare.service.exception.RoleNotGranted;
import pl.maciejziarko.mshare.service.exception.RoleServiceException;

import java.util.List;

/**
 * @author Maciej Ziarko
 */
public interface RoleService {

    List<Role> getRoles(Account account) throws RoleServiceException;

    void addRole(Account account, Role role) throws RoleAlreadyGranted, RoleServiceException;

    void removeRole(Account account, Role role) throws RoleNotGranted, RoleServiceException;
    
}
